package com.zhw.controller;

import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;

/**
 * Created by 廖师兄
 * 2017-07-03 00:50
 */
@RestController
@RequestMapping("/weixin")
@Slf4j
public class WeixinController {   //手动不用sdk方式

    /*如果用户同意授权，页面将跳转至 redirect_uri/?code=CODE&state=STATE。
     *code说明 ： code作为换取access_token的票据，每次用户授权带上的code将不一样，code只能使用一次，5分钟未被使用自动过期。
     */
    /*第一步：用户同意授权获取code，并跳转到我们的页面
    * https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxa4a67ab74a1eedd9&redirect_uri=http://wxtest.nat300.top/sell/weixin/auth&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect
    * */
    @GetMapping("/auth")
    public void auth(@RequestParam("code") String code) {   //用户同意后会携带code进入我们的网址
        log.info("进入auth方法。。。");
        log.info("code={}", code);
        String appID="wxa4a67ab74a1eedd9";
        String appsecret= "c93630c3edc1381ff35d3fef0da55e9c";

        String url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid="
                +appID+ "&secret="+appsecret+"&code=" + code + "&grant_type=authorization_code";
        /*第二步：获取openid*/
        RestTemplate restTemplate = new RestTemplate();
        String response = restTemplate.getForObject(url, String.class);  // 发送get请求获取返回的json字符串
        log.info("response={}", response);
    }
}
